package com.loong.nnm.services;

import com.loong.nnm.entity.alarm.Alarm;
import com.loong.nnm.entity.alarm.AlarmMaskState;
import com.loong.nnm.entity.alarm.Tca;
import com.loong.nnm.entity.alarm.TcaParameter;

import java.util.List;

/**
 * 告警信息获取配置
 *
 * @author wcloong
 * @time 2022/9/13
 */
public interface AlarmsServices {

    /**
     * 获取全部的告警信息
     *
     * @param node 网元名称
     * @return 告警信息列表
     */
//    List<Alarm> getAlarms(String node);
    String getAlarms(String node);

//    Alarm getAlarm(String node, Alarm alarm);
    String getAlarm(String node, Alarm alarm);

    /**
     * 通过告警唯一定位号 获取一条告警
     *
     * @param node          指定网元名称
     * @param alarmSerialNo 告警唯一定位号
     * @return 告警信息
     */
//    Alarm getAlarm(String node, int alarmSerialNo);
    String getAlarm(String node, int alarmSerialNo);

    /**
     * 获取告警屏蔽
     *
     * @param node           网元名称
     * @param alarmMaskState 筛选条件
     * @return 告警屏蔽信息
     */
//    AlarmMaskState getAlarmMaskState(String node, AlarmMaskState alarmMaskState);
    String getAlarmMaskState(String node, AlarmMaskState alarmMaskState);

    /**
     * 获取全部告警屏蔽信息
     *
     * @param node 网元名称
     * @return 告警屏蔽信息列表
     */
//    List<AlarmMaskState> getAlarmMaskState(String node);
    String getAlarmMaskState(String node);

    /**
     * 设置告警屏蔽状态
     *
     * @param node           网元名称
     * @param alarmMaskState 告警屏蔽状态设置
     * @return 成功/失败
     */
    String setAlarmMaskState(String node, AlarmMaskState alarmMaskState);

    /**
     * 获取全部下门限参数
     *
     * @param node 网元名称
     * @return 门限参数列表
     */
//    List<TcaParameter> getTcaParameters(String node);
    String getTcaParameters(String node);

    /**
     * 查询指定门限参数
     *
     * @param node         网元名称
     * @param tcaParameter 性能参数（类型、名称、周期、
     * @return
     */
//    TcaParameter getTcaParameter(String node, TcaParameter tcaParameter);
    String getTcaParameter(String node, TcaParameter tcaParameter);

    /**
     * 获取性能越限告警
     *
     * @param node 网元名称
     * @return 性能越限告警
     */
//    Tca getTca(String node);
    String getTca(String node);

}
